package Server;

import java.util.ArrayList;
import java.util.Vector;

public class GlobaisServidor {
	protected static Vector<InfoArquivo> tabelaArquivos = new Vector<InfoArquivo>();
	public static final int CRIAR_ARQUIVO = 1;
	public static final int LER_ARQUIVO = 2;
	public static final int MOVER_ARQUIVO = 3;
	public static final int REMOVER_ARQUIVO = 4;
	public static final int LIBERAR_ARQUIVO = 5;
	public static final int ATUALIZAR_ARQUIVO = 6;
	

	public static synchronized int addClienteVector(String nomeArquivo, String nomeCliente){
		for(int i = 0; i < tabelaArquivos.size();i++){
			if(nomeArquivo.equals(tabelaArquivos.get(i).getNomeArquivo())){
				tabelaArquivos.get(i).addNosAcesso(nomeCliente);
				return i;
			}
		}
		return -1;
	}
	public static int buscaArquivoVector(String nomeArquivo){
		for(int i = 0; i < tabelaArquivos.size();i++){
			if(nomeArquivo.equals(tabelaArquivos.get(i).getNomeArquivo())){
				return i;
			}
		}
		return -1;
	}
	public static synchronized boolean novoServidorVector(String nomeArquivo,
			String nomeNoOrigem, String nomeNoDestino) {
		int i = buscaArquivoVector(nomeArquivo);
		if(i == -1) return false;
		ArrayList<String> array = tabelaArquivos.get(i).getNosServidores();
		for(i = 0; i<array.size(); i++){
			if(array.get(i).equals(nomeNoOrigem)) {
				array.add(nomeNoDestino);
				return true;
			}
		}
		return false;
	}
	public static synchronized boolean removerServidorVector(String nomeArquivo,String nomeNo){
		int i = buscaArquivoVector(nomeArquivo);
		if(i == -1) return false;
		ArrayList<String> array = tabelaArquivos.get(i).getNosServidores();
		for(i = 0; i<array.size(); i++){
			if(array.get(i).equals(nomeNo)) {
				array.remove(i);
				return true;
			}
		}
		return false;
	}
}
